package com.msh.artascope.devcloud.retrofit.client.interfaces;


import com.github.lianjiatech.retrofit.spring.boot.core.RetrofitClient;
import com.msh.artascope.devcloud.client.po.*;
import com.msh.artascope.devcloud.client.qo.*;
import com.msh.frame.client.common.Result;
import retrofit2.http.Body;
import retrofit2.http.POST;

import java.util.List;

@RetrofitClient(baseUrl = "${retrofit.devcloud.url:http://artascope-devcloud-api:20123/}")
public interface DevcloudRetrofitClient {


  //-----------默认资源 相关接口 start--------------------------------------------

  /**
   * defalutResource 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/defalutResource/insert")
  Result<Long> insert(@Body DefalutResourcePo p);

  /**
   * defalutResource 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/defalutResource/delete")
  Result delete(@Body DefalutResourceQo q);


  /**
   * defalutResource 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/defalutResource/update")
  Result update(@Body DefalutResourcePo p);

  /**
   * defalutResource 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/defalutResource/get")
  Result<DefalutResourcePo> get(@Body DefalutResourceQo q);

  /**
   * defalutResource 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/defalutResource/list")
  Result<List<DefalutResourcePo>> list(@Body DefalutResourceQo q);

  /**
   * defalutResource 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/defalutResource/page")
  Result<List<DefalutResourcePo>> page(@Body DefalutResourceQo q);


  //-----------默认资源 相关接口 end-----------------------------


  //-----------环境信息 相关接口 start--------------------------------------------

  /**
   * env 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/env/insert")
  Result<Long> insert(@Body EnvPo p);

  /**
   * env 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/env/delete")
  Result delete(@Body EnvQo q);


  /**
   * env 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/env/update")
  Result update(@Body EnvPo p);

  /**
   * env 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/env/get")
  Result<EnvPo> get(@Body EnvQo q);

  /**
   * env 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/env/list")
  Result<List<EnvPo>> list(@Body EnvQo q);

  /**
   * env 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/env/page")
  Result<List<EnvPo>> page(@Body EnvQo q);


  //-----------环境信息 相关接口 end-----------------------------


  //-----------gitllab配置 相关接口 start--------------------------------------------

  /**
   * gitlabConfig 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/gitlabConfig/insert")
  Result<Long> insert(@Body GitlabConfigPo p);

  /**
   * gitlabConfig 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/gitlabConfig/delete")
  Result delete(@Body GitlabConfigQo q);


  /**
   * gitlabConfig 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/gitlabConfig/update")
  Result update(@Body GitlabConfigPo p);

  /**
   * gitlabConfig 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/gitlabConfig/get")
  Result<GitlabConfigPo> get(@Body GitlabConfigQo q);

  /**
   * gitlabConfig 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/gitlabConfig/list")
  Result<List<GitlabConfigPo>> list(@Body GitlabConfigQo q);

  /**
   * gitlabConfig 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/gitlabConfig/page")
  Result<List<GitlabConfigPo>> page(@Body GitlabConfigQo q);


  //-----------gitllab配置 相关接口 end-----------------------------


  //-----------jenkins配置 相关接口 start--------------------------------------------

  /**
   * jenkinsConfig 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/jenkinsConfig/insert")
  Result<Long> insert(@Body JenkinsConfigPo p);

  /**
   * jenkinsConfig 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/jenkinsConfig/delete")
  Result delete(@Body JenkinsConfigQo q);


  /**
   * jenkinsConfig 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/jenkinsConfig/update")
  Result update(@Body JenkinsConfigPo p);

  /**
   * jenkinsConfig 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/jenkinsConfig/get")
  Result<JenkinsConfigPo> get(@Body JenkinsConfigQo q);

  /**
   * jenkinsConfig 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/jenkinsConfig/list")
  Result<List<JenkinsConfigPo>> list(@Body JenkinsConfigQo q);

  /**
   * jenkinsConfig 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/jenkinsConfig/page")
  Result<List<JenkinsConfigPo>> page(@Body JenkinsConfigQo q);


  //-----------jenkins配置 相关接口 end-----------------------------


  //-----------kubernetes配置 相关接口 start--------------------------------------------

  /**
   * kubernetesConfig 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/kubernetesConfig/insert")
  Result<Long> insert(@Body KubernetesConfigPo p);

  /**
   * kubernetesConfig 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/kubernetesConfig/delete")
  Result delete(@Body KubernetesConfigQo q);


  /**
   * kubernetesConfig 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/kubernetesConfig/update")
  Result update(@Body KubernetesConfigPo p);

  /**
   * kubernetesConfig 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/kubernetesConfig/get")
  Result<KubernetesConfigPo> get(@Body KubernetesConfigQo q);

  /**
   * kubernetesConfig 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/kubernetesConfig/list")
  Result<List<KubernetesConfigPo>> list(@Body KubernetesConfigQo q);

  /**
   * kubernetesConfig 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/kubernetesConfig/page")
  Result<List<KubernetesConfigPo>> page(@Body KubernetesConfigQo q);


  //-----------kubernetes配置 相关接口 end-----------------------------


  //-----------镜像库配置 相关接口 start--------------------------------------------

  /**
   * registerConfig 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/registerConfig/insert")
  Result<Long> insert(@Body RegisterConfigPo p);

  /**
   * registerConfig 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/registerConfig/delete")
  Result delete(@Body RegisterConfigQo q);


  /**
   * registerConfig 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/registerConfig/update")
  Result update(@Body RegisterConfigPo p);

  /**
   * registerConfig 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/registerConfig/get")
  Result<RegisterConfigPo> get(@Body RegisterConfigQo q);

  /**
   * registerConfig 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/registerConfig/list")
  Result<List<RegisterConfigPo>> list(@Body RegisterConfigQo q);

  /**
   * registerConfig 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/registerConfig/page")
  Result<List<RegisterConfigPo>> page(@Body RegisterConfigQo q);


  //-----------镜像库配置 相关接口 end-----------------------------


  //-----------构建记录 相关接口 start--------------------------------------------

  /**
   * moduleBuild 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/moduleBuild/insert")
  Result<Long> insert(@Body ModuleBuildPo p);

  /**
   * moduleBuild 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/moduleBuild/delete")
  Result delete(@Body ModuleBuildQo q);


  /**
   * moduleBuild 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/moduleBuild/update")
  Result update(@Body ModuleBuildPo p);

  /**
   * moduleBuild 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/moduleBuild/get")
  Result<ModuleBuildPo> get(@Body ModuleBuildQo q);

  /**
   * moduleBuild 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/moduleBuild/list")
  Result<List<ModuleBuildPo>> list(@Body ModuleBuildQo q);

  /**
   * moduleBuild 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/moduleBuild/page")
  Result<List<ModuleBuildPo>> page(@Body ModuleBuildQo q);


  //-----------构建记录 相关接口 end-----------------------------


  //-----------运行记录 相关接口 start--------------------------------------------

  /**
   * moduleRun 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/moduleRun/insert")
  Result<Long> insert(@Body ModuleRunPo p);

  /**
   * moduleRun 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/moduleRun/delete")
  Result delete(@Body ModuleRunQo q);


  /**
   * moduleRun 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/moduleRun/update")
  Result update(@Body ModuleRunPo p);

  /**
   * moduleRun 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/moduleRun/get")
  Result<ModuleRunPo> get(@Body ModuleRunQo q);

  /**
   * moduleRun 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/moduleRun/list")
  Result<List<ModuleRunPo>> list(@Body ModuleRunQo q);

  /**
   * moduleRun 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/moduleRun/page")
  Result<List<ModuleRunPo>> page(@Body ModuleRunQo q);


  //-----------运行记录 相关接口 end-----------------------------


  //-----------模块信息 相关接口 start--------------------------------------------

  /**
   * module 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/module/insert")
  Result<Long> insert(@Body ModulePo p);

  /**
   * module 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/module/delete")
  Result delete(@Body ModuleQo q);


  /**
   * module 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/module/update")
  Result update(@Body ModulePo p);

  /**
   * module 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/module/get")
  Result<ModulePo> get(@Body ModuleQo q);

  /**
   * module 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/module/list")
  Result<List<ModulePo>> list(@Body ModuleQo q);

  /**
   * module 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/module/page")
  Result<List<ModulePo>> page(@Body ModuleQo q);


  //-----------模块信息 相关接口 end-----------------------------


  //-----------ingress 相关接口 start--------------------------------------------

  /**
   * moduleIngress 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/moduleIngress/insert")
  Result<Long> insert(@Body ModuleIngressPo p);

  /**
   * moduleIngress 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/moduleIngress/delete")
  Result delete(@Body ModuleIngressQo q);


  /**
   * moduleIngress 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/moduleIngress/update")
  Result update(@Body ModuleIngressPo p);

  /**
   * moduleIngress 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/moduleIngress/get")
  Result<ModuleIngressPo> get(@Body ModuleIngressQo q);

  /**
   * moduleIngress 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/moduleIngress/list")
  Result<List<ModuleIngressPo>> list(@Body ModuleIngressQo q);

  /**
   * moduleIngress 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/moduleIngress/page")
  Result<List<ModuleIngressPo>> page(@Body ModuleIngressQo q);


  //-----------ingress 相关接口 end-----------------------------


  //-----------网络 相关接口 start--------------------------------------------

  /**
   * moduleNetwork 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/moduleNetwork/insert")
  Result<Long> insert(@Body ModuleNetworkPo p);

  /**
   * moduleNetwork 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/moduleNetwork/delete")
  Result delete(@Body ModuleNetworkQo q);


  /**
   * moduleNetwork 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/moduleNetwork/update")
  Result update(@Body ModuleNetworkPo p);

  /**
   * moduleNetwork 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/moduleNetwork/get")
  Result<ModuleNetworkPo> get(@Body ModuleNetworkQo q);

  /**
   * moduleNetwork 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/moduleNetwork/list")
  Result<List<ModuleNetworkPo>> list(@Body ModuleNetworkQo q);

  /**
   * moduleNetwork 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/moduleNetwork/page")
  Result<List<ModuleNetworkPo>> page(@Body ModuleNetworkQo q);


  //-----------网络 相关接口 end-----------------------------


  //-----------资源 相关接口 start--------------------------------------------

  /**
   * moduleResource 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/moduleResource/insert")
  Result<Long> insert(@Body ModuleResourcePo p);

  /**
   * moduleResource 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/moduleResource/delete")
  Result delete(@Body ModuleResourceQo q);


  /**
   * moduleResource 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/moduleResource/update")
  Result update(@Body ModuleResourcePo p);

  /**
   * moduleResource 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/moduleResource/get")
  Result<ModuleResourcePo> get(@Body ModuleResourceQo q);

  /**
   * moduleResource 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/moduleResource/list")
  Result<List<ModuleResourcePo>> list(@Body ModuleResourceQo q);

  /**
   * moduleResource 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/moduleResource/page")
  Result<List<ModuleResourcePo>> page(@Body ModuleResourceQo q);


  //-----------资源 相关接口 end-----------------------------


  //-----------产品表 相关接口 start--------------------------------------------

  /**
   * product 新增
   * @param p 新增Po
   * @return 新增id
   */
  @POST(value = "/product/insert")
  Result<Long> insert(@Body ProductPo p);

  /**
   * product 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/product/delete")
  Result delete(@Body ProductQo q);

  /**
   * product 逻辑删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/product/logicdelete")
  Result logicDelete(@Body ProductQo q);

  /**
   * product 修改
   * @param p 修改Po
   * @return 修改结果
   */
  @POST(value = "/product/update")
  Result update(@Body ProductPo p);

  /**
   * product 获取
   * @param q 查询Qo
   * @return 查询Po
   */
  @POST(value = "/product/get")
  Result<ProductPo> get(@Body ProductQo q);

  /**
   * product 列表查询
   * @param q 查询Qo
   * @return 查询Po列表
   */
  @POST(value = "/product/list")
  Result<List<ProductPo>> list(@Body ProductQo q);

  /**
   * product 分页查询
   * @param q 查询Qo
   * @return  分页查询Po列表
   */
  @POST(value = "/product/page")
  Result<List<ProductPo>> page(@Body ProductQo q);


  //-----------产品表 相关接口 end-----------------------------


  //-----------项目信息 相关接口 start--------------------------------------------

  /**
   * project 新增
   * @param p 新增PO
   * @return 新增id
   */
  @POST(value = "/project/insert")
  Result<Long> insert(@Body ProjectPo p);

  /**
   * project 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/project/delete")
  Result delete(@Body ProjectQo q);


  /**
   * project 修改
   * @param p 修改PO
   * @return 修改结果
   */
  @POST(value = "/project/update")
  Result update(@Body ProjectPo p);

  /**
   * project 获取
   * @param q 查询Qo
   * @return 查询PO
   */
  @POST(value = "/project/get")
  Result<ProjectPo> get(@Body ProjectQo q);

  /**
   * project 列表查询
   * @param q 查询Qo
   * @return 查询PO列表
   */
  @POST(value = "/project/list")
  Result<List<ProjectPo>> list(@Body ProjectQo q);

  /**
   * project 分页查询
   * @param q 查询Qo
   * @return  分页查询PO列表
   */
  @POST(value = "/project/page")
  Result<List<ProjectPo>> page(@Body ProjectQo q);


  //-----------项目信息 相关接口 end-----------------------------


  //-----------日志配置 相关接口 start--------------------------------------------

  /**
   * logConfig 新增
   * @param p 新增PO
   * @return 新增id
   */
  @POST(value = "/logConfig/insert")
  Result<Long> insert(@Body LogConfigPo p);

  /**
   * logConfig 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/logConfig/delete")
  Result delete(@Body LogConfigQo q);


  /**
   * logConfig 修改
   * @param p 修改PO
   * @return 修改结果
   */
  @POST(value = "/logConfig/update")
  Result update(@Body LogConfigPo p);

  /**
   * logConfig 获取
   * @param q 查询Qo
   * @return 查询PO
   */
  @POST(value = "/logConfig/get")
  Result<LogConfigPo> get(@Body LogConfigQo q);

  /**
   * logConfig 列表查询
   * @param q 查询Qo
   * @return 查询PO列表
   */
  @POST(value = "/logConfig/list")
  Result<List<LogConfigPo>> list(@Body LogConfigQo q);

  /**
   * logConfig 分页查询
   * @param q 查询Qo
   * @return  分页查询PO列表
   */
  @POST(value = "/logConfig/page")
  Result<List<LogConfigPo>> page(@Body LogConfigQo q);


  //-----------日志配置 相关接口 end-----------------------------


  //-----------健康检测 相关接口 start--------------------------------------------

  /**
   * healthTest 新增
   * @param p 新增PO
   * @return 新增id
   */
  @POST(value = "/healthTest/insert")
  Result<Long> insert(@Body HealthTestPo p);

  /**
   * healthTest 删除
   * @param q 查询Qo
   * @return 删除结果
   */
  @POST(value = "/healthTest/delete")
  Result delete(@Body HealthTestQo q);


  /**
   * healthTest 修改
   * @param p 修改PO
   * @return 修改结果
   */
  @POST(value = "/healthTest/update")
  Result update(@Body HealthTestPo p);

  /**
   * healthTest 获取
   * @param q 查询Qo
   * @return 查询PO
   */
  @POST(value = "/healthTest/get")
  Result<HealthTestPo> get(@Body HealthTestQo q);

  /**
   * healthTest 列表查询
   * @param q 查询Qo
   * @return 查询PO列表
   */
  @POST(value = "/healthTest/list")
  Result<List<HealthTestPo>> list(@Body HealthTestQo q);

  /**
   * healthTest 分页查询
   * @param q 查询Qo
   * @return  分页查询PO列表
   */
  @POST(value = "/healthTest/page")
  Result<List<HealthTestPo>> page(@Body HealthTestQo q);


  //-----------健康检测 相关接口 end-----------------------------


}
